
<div class="layuimini-container layui-anim layui-anim-upbit">        
    <div class="layui-col-sm12 layui-col-md8 layui-col-lg12">
        <form class="layui-form" method="post" style="margin-top:20px" lay-filter="component-formxq" id="popdataxq">
            <input type="hidden" id="sno" name="sno" value="" />
        </form>

        <div class="layui-card">
            <div class="layui-card-body">
                <div class="layui-form toolbar">
                    <div class="layui-form-item">
                        <div class="layui-inline">
                            <div class="layui-input-inline" style="width: 30%;">
                                <label class="layui-form-label">题名</label>
                            </div>
                            <div class="layui-input-inline mr0">
                                <input id="xqSearch" class="layui-input" type="text" placeholder="输入关键字" />
                            </div>
                        </div>
                        <div class="layui-inline">
                            <button id="xqSearchbtn" class="layui-btn icon-btn">
                                <i class="layui-icon layui-icon-search"></i>搜索
                            </button>
                        </div>
                        <div class="layui-inline lungTablexq">
                            <button id="btnAddxq" class="layui-btn icon-btn" 
                            id="dataaddxq" data-type="dataaddxq">
                                <i class="layui-icon">&#xe654;</i>新增
                            </button>
                        </div>
                    </div>
                </div>
                <div class="layui-tab layui-tab-brief" lay-filter="tab-all">
                    <div class="layui-tab-content">
                        <div class="layui-tab-item layui-show">
                            <table class="layui-table" id="TableXQ" lay-filter="TableXQ">

                            </table>
                        </div>
                    </div>
                </div>
        </div>
    </div>
    </div>
</div>

<style type="text/css">
    .layui-table-cell{
        text-align:center;

        height: auto;

        white-space: normal;

    }

    .layui-table-cell .layui-form-checkbox[lay-skin=primary] {
        top: 0px;
        padding: 0;
    }
</style>


<script type="text/html" id="barDemoXQ">
    <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>


<script>
        
    layui.use(['layer', 'form', 'table', 'tree','element',], function () {
        var $ = layui.jquery;
        var layer = layui.layer;
        var form = layui.form;
        var table = layui.table;
        var element = layui.element;
        form.render();
        var page = 1; var pageSize = 10;
        element.on('tab(tab-all)', function (data) {
            $('#xqSearchbtn').click();
        });

        //实例化table，表id,数据库,类型（文献/图片/视频）,表头，检索条件，检索词，数节点list
        function getxqList(value,sno) {
            table.render({
                elem: '#TableXQ'
                , method: 'post'
                , url: config.server +'/dataProcessing/retrievalQK'
                ,contentType:'application/json'
                 , request: {
                     pageName: 'page' //页码的参数名称，默认：page
                     , limitName: 'pageSize' //每页数据量的参数名，默认：limit                    
                 }
                 , response: {
                     statusCode: 200 //规定成功的状态码，默认：0
                 } 
                , where: {
                    searchType:"篇名",
                    searchValue:value,
                    compile:sno,
                }
                , limit: 10
                , limits: [5, 8, 10]
                , height: 'full-260'
                , cellMinWidth: 101 //全局定义常规单元格的最小宽度，layui 2.2.1 新增
                , cols: [[
                    { type: 'numbers', align: "center", title: '序号' },
                    { field: 'title', align: 'center', title: '篇名' },
                    { field: 'author', align: 'center', width: 120, title: '作者' ,},
                    { field: 'physicalPage', title: '页码',width: 120, },
                    { fixed: 'right', title: '操作', width: 120, align: 'center', toolbar: '#barDemoXQ' }
                ]]
               , page: true
               , parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
                   return {
                       "code": res.code, //解析接口状态
                       "msg": res.msg, //解析提示文本
                       "count": res.data.count, //解析数据长度
                       "data": res.data.list  //解析数据列表
                   };
               },
            });

            active = {
                dataaddxq: function () {
                    adddataxq();
                },
                dataadd: function () {
                    adddata();
                }
            }

            $('.lungTablexq .layui-btn').on('click', function () {
                var type = $(this).data('type');
                active[type] ? active[type].call(this) : '';
            });


            table.on('tool(TableXQ)', function (obj) { //注：tool 是工具条事件名，test 是 table 原始容器的属性 lay-filter="对应的值"
                
                var data = obj.data; //获得当前行数据
                var layEvent = obj.event; //获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
                var tr = obj.tr; //获得当前行 tr 的 DOM 对象（如果有的话）
                if (layEvent === 'del') { //删除
                    layer.confirm('确认删除？', function (index) {
                        Del(data.sysID,data.compile,data.fileName);
                        table.reload('TableXQ', {
                            page: {
                                curr: 1 //重新从第 1 页开始
                            },
                        });
                        layer.close();//向服务端发送删除指令
                    });
                }
                else if (layEvent === 'edit') { //编辑
                    var content = layui.miniPage.getHrefContent('mypages/usual/dataMgt/addDataqk.html');
                    layer.open({
                        //layer提供了5种层类型。可传入的值有：0（信息框，默认）1（页面层）2（iframe层）3（加载层）4（tips层）
                        type: 1,
                        id:'LAY_layuixq1',
                        skin: 'layui-layer-rim',
                        title: "编辑",
                        area: ['880px', '530px'],
                        maxmin: true, //最大最小化
                        content: content, //引用的弹出层的页面层的方式加载修改界面表单
                        btn: ['保存', '取消'],
                        success: function (layero, index) { // 成功弹出后回调
                            // 解决按enter键重复弹窗问题
                            $(':focus').blur();
                            // 添加form标识
                            layero.addClass('layui-form');
                            // 将保存按钮改变成提交按钮
                            layero.find('.layui-layer-btn0').attr({
                                'lay-filter': 'addRole',
                                'lay-submit': ''
                            });
                            // 刷新渲染(否则开关按钮会不显示)
                            form.render('checkbox');
                            layui.form.val('component-form-group', {
                                "author": data.author,
                                "title": data.title,
                                "sysID": data.sysID,
                                "physicalPage": data.physicalPage,
                                "compile":data.compile,
                                "abstractCN":data.abstractCN,
                                "fileName":data.fileName,
                                "oldfileName":data.fileName,
                            });
                            setCode(data.fileName);
        
                        },
                        yes: function (index, layero) { // 确认按钮回调函数
                            // 监听提交按钮
                            form.on('submit(addRole)', function (data) {
                                var formData = new FormData($("#popdataxqk")[0]);
                                var name = formData.get('title');
                                var file = formData.get('fileName');
                                if (!regKeyWord(name)) {
                                    layer.alert("输入非法字符，请检查！");
                                    return false;
                                }
                                if (file == null || file == "") {
                                    layer.alert("请选择文件！");
                                    return false;
                                }

                                $.ajax({
                                    url: config.server +'/dataProcessing/update',
                                    data: formData,
                                    type: "post",
                                    dataType: "json",
                                    headers: {
                                        token: shared.getCookie('mydx_token'),
                                    },
                                    cache:false,
                                    contentType: false, //jax 中 contentType 设置为 false 是为了避免 JQuery 对其操作，从而失去分界符，而使服务器不能正常解析文件
                                    processData: false, //当设置为true的时候,jquery ajax 提交的时候不会序列化 data，而是直接使用data
                                    success: function (msg) {
                                        if (msg.code == 200) {
                                            layer.msg("保存成功!");
                                            layer.close(index);//成功就关闭弹窗
                                            $('#xqSearchbtn').click(); 
                                        } else {
                                            layer.msg(msg.msg);
                                        }
                                    },
                                    error: function (e) { }
                                });

                                return false;//这里加个return false;就不会两次提交
                            });
                        },
                        btn2: function (index, layero) { // 取消按钮回调函数
                            layer.close(index); // 关闭弹出层
                        }
                    });                       
                }
            });
        }
        
              
        //搜索按钮点击事件
        $('#xqSearchbtn').click(function () {
            var value = $('#xqSearch').val(); //检索词
            var sno=$('#sno').val();
            if (!regKeyWord(value)) {
                    layer.alert("输入非法字符，请检查！");
                    return "";
                }
            form.render('select');
            getxqList(value,sno);
        });
        
    });
      
    
    //弹窗
    function adddataxq(){
        var content = layui.miniPage.getHrefContent('mypages/usual/dataMgt/addDataqk.html');

        layer.open({
            type: 1,
            title: '新增',
            id:'LAY_layuixq2',
            skin: 'layui-layer-skin', //样式类名
            area: ['880px', '530px'],//宽高自适应
            id: 'LAY_layuipro2',
            shade: 0,//遮罩透明度
            shadeClose: true,
            maxmin: true, //最大最小化
            content: content,
            success: function (layero,index) {
                 // 解决按enter键重复弹窗问题
                 $(':focus').blur();
                    // 添加form标识
                    layero.addClass('layui-form');
                    // 将保存按钮改变成提交按钮
                    layero.find('.layui-layer-btn0').attr({
                        'lay-filter': 'addRole',
                        'lay-submit': ''
                    });
                    // 刷新渲染(否则开关按钮会不显示)
                    form.render('checkbox');
                    layui.form.val('component-form-group', {
                        "sysID": "0",
                        "compile":$("#sno").val(),
                    });
            },
            btn: ['确认','取消'],
            //确认按钮事件
            yes: function (index, layero) {
                // 监听提交按钮
                form.on('submit(addRole)', function (data) {
                        var formData = new FormData($("#popdataxqk")[0]);
                        var name = formData.get('title');
                        var file = formData.get('fileName');
                        if (name == null || name == "") {
                            layer.alert("请输入篇名！");
                            return false;
                        } 
                        if (!regKeyWord(name)) {
                            layer.alert("输入非法字符，请检查！");
                            return false;
                        }
                        if (file == null || file == "") {
                            layer.alert("请选择文件！");
                            return false;
                        } 
                       
                        $.ajax({
                            url: config.server +'/dataProcessing/insert',
                            data: formData,
                            type: "post",
                            dataType: "json",
                            headers: {
                                token: shared.getCookie('mydx_token'),
                            },
                            cache:false,
                            contentType: false, //jax 中 contentType 设置为 false 是为了避免 JQuery 对其操作，从而失去分界符，而使服务器不能正常解析文件
                            processData: false, //当设置为true的时候,jquery ajax 提交的时候不会序列化 data，而是直接使用data
                            success: function (msg) {
                                if (msg.code == 200) {
                                    layer.msg("保存成功!");
                                    layer.close(index);//成功就关闭弹窗
                                    $('#xqSearchbtn').click();
                                } else {
                                    layer.msg(msg.msg);
                                }
                            },
                            error: function (e) { }
                        });
                            return false;//这里加个return false;就不会两次提交
                    });
            },
            //取消按钮事件
            btn2:function (index, layero) {
                layer.close(index);
            },
        })
    }

    //删除
    function Del(sysid,compile,fileName) {
        
        $.ajax({
            type: "POST",
            headers: {
                    token: shared.getCookie('mydx_token'),
                 },
            url: config.server +'/dataProcessing/delete',
            data: JSON.stringify({ "sysID": sysid,"database":"MYDXBDQKXQ","compile":compile,"fileName":fileName}),
            contentType: 'application/json',
            dataType: "json",
            crossDomain: true,
            cache:false,
            success: function (msg) {
                if (msg.code == 200 ) {
                    layer.alert('操作成功！', { icon: 6 });
                    layer.close();
                    $('#xqSearchbtn').click(); 
                }
                else {
                    layer.alert('操作失败！请联系管理员', { icon: 5 });
                }
            },
            error: function (e) {
                layer.alert('操作失败！请联系管理员', { icon: 5 });
            }
        })
    }


    //关键词过滤
    function regKeyWord(value) {
        var reg = /^[^~?!@#$%^&*<>,.；]+$/;
        if (value != "" && !reg.test(value)) {
            return false;
        }
        else {
            return true;
        }
    }

</script>
